package com.ruoyi.interview.service;

import java.util.List;
import com.ruoyi.interview.domain.InterviewReport;
import com.ruoyi.interview.domain.entity.ReportDetailEntity;
import com.ruoyi.interview.domain.entity.ReportResponseEntity;

/**
 * 面试报告Service接口
 * 
 * @author z5
 * @date 2025-06-19
 */
public interface IInterviewReportService 
{
    /**
     * 查询面试报告
     * 
     * @param id 面试报告主键
     * @return 面试报告
     */
    public InterviewReport selectInterviewReportById(Long id);

    /**
     * 查询面试报告列表
     * 
     * @param interviewReport 面试报告
     * @return 面试报告集合
     */
    public List<InterviewReport> selectInterviewReportList(InterviewReport interviewReport);

    /**
     * 新增面试报告
     * 
     * @param interviewReport 面试报告
     * @return 结果
     */
    public int insertInterviewReport(InterviewReport interviewReport);

    /**
     * 修改面试报告
     * 
     * @param interviewReport 面试报告
     * @return 结果
     */
    public int updateInterviewReport(InterviewReport interviewReport);

    /**
     * 批量删除面试报告
     * 
     * @param ids 需要删除的面试报告主键集合
     * @return 结果
     */
    public int deleteInterviewReportByIds(Long[] ids);

    /**
     * 删除面试报告信息
     * 
     * @param id 面试报告主键
     * @return 结果
     */
    public int deleteInterviewReportById(Long id);

    /**
     * 生成面试记录对应的面试评价的提示词
     * @param recordId
     * @return
     */
    String genPrompt(Long recordId);

    /**
     * 将deepseek生成的评价保存至数据库
     * @param reportResponseEntity
     */
    void saveReport(ReportResponseEntity reportResponseEntity);

    int getResult(Long recordId);

    List<InterviewReport> selectList();

    /**
     * 查询报告详情
     * @param reportId
     * @return
     */
    ReportDetailEntity reportDetail(Long reportId);
}
